package net.cloudcodex.shared.dto;

import java.io.Serializable;
import java.util.Date;

import net.cloudcodex.shared.NotificationType;

/**
 * A notification to a User, a campaign (all users of the campaign) 
 * or a character.
 * 
 * @author Thomas
 */
public class NotificationDTO implements Serializable {

	/**
	 * Id of the notification, used to "mark as read" 
	 * or remove notifications but may be null (when general 
	 * notifications which cannot be deleted).
	 */
	private Long id;
	
	/**
	 * Type of the notification.
	 */
	private NotificationType type;
	
	/**
	 * Text of the notification.
	 */
	private String message;

	/**
	 * Date of the notification.
	 */
	private Date date;

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id the id to set
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * @return the message
	 */
	public String getMessage() {
		return message;
	}

	/**
	 * @param message the message to set
	 */
	public void setMessage(String message) {
		this.message = message;
	}

	/**
	 * @return the date
	 */
	public Date getDate() {
		return date;
	}

	/**
	 * @param date the date to set
	 */
	public void setDate(Date date) {
		this.date = date;
	}

	/**
	 * @return the type
	 */
	public NotificationType getType() {
		return type;
	}

	/**
	 * @param type the type to set
	 */
	public void setType(NotificationType type) {
		this.type = type;
	}
	
}
